package edu.nuist.unit02;

/**
 * @author wangzhuangzhuang
 * @DESC: 同步程序的顺序一致性效果
 * @date 2022-04-22 20:39
 */
public class SynchronizedExample {
	int a = 0;
	boolean flag = false;

	public synchronized void writer() { // 获取锁
		a = 1;
		flag = true;
	} // 释放锁

	public synchronized void reader() { // 获取锁
		if (flag) {
			int i = a;
		}
	} // 释放锁
}

/**
 * 顺序一致性模型中，所有操作完全按程序的顺序串行执行。
 * 而在JMM中，临界区内的代码可以重排序
 * */